//导入
const bodyParser = require('body-parser')
const express = require('express')
const app = express()
const userRouter = require('./router/user')
const goodsRouter = require('./router/goods')
const cartRouter = require('./router/cart')
const writeLog = require('./middleware/writeLog')
const respond = require('./utils/respond')
const writeErrLog = require('./utils/writeErrLog')
const cors = require('cors')


//全局使用
app.use('/uploads', express.static('uploads'))

app.use(bodyParser.urlencoded({ extended: false }))
//允许其他地址跨域请求数据
app.use(cors())

//用户
app.use('/api/users', userRouter)

//商品
app.use('/api/goods', goodsRouter)


// 购物车
app.use('/api/cart', cartRouter)


app.use(writeLog)


// 测试错误日志写入
// app.get('/', (req, res) => {
//     // 手动抛出一个错误 - 我们希望这里能报错，但系统不报错，就可以手动报错 throw new Error('自定义错误信息')
//     throw new Error('自定义的错误')
// })

//返回404
app.use((req, res, next) => {
    writeErrLog('路径不存在')
    respond(res, 404, '请求路径错误')
})

// 异常处理中间件
app.use((err, req, res, next) => {
    // 在日志中默认记录的请求成功ok，在这里应该做修改
    // respond(res, 500, '服务器内部错误')
    writeErrLog(err)
    respond(res, 500, '服务器内部错误')
})


//端口号
app.listen(3000, () => {
    console.log('api:端口号3000已经启动了!!!');
})